gdkevents-win32.c: Clean up WM_ACTIVATE handling a bit
authorChun-wei Fan <fanchunwei@src.gnome.org>
Tue, 8 Sep 2020 08:09:46 +0000 (16:09 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Tue, 15 Sep 2020 07:53:34 +0000 (15:53 +0800)
We can group some things together, to make things a little bit more clear

gdk/win32/gdkevents-win32.c

index 244b0adde69e6529d011370170d2bf72fff85e36..39546390a28f93abf80920002f51da105de0b1e9 100644 (file)
@@ -3276,34 +3276,38 @@ gdk_event_translate (MSG *msg,
          break;
        }
 
-      if (LOWORD (msg->wParam) == WA_INACTIVE && msg->lParam != 0)
+      if (LOWORD (msg->wParam) == WA_INACTIVE)
         {
-          GdkSurface *other_surface = gdk_win32_handle_table_lookup ((HWND) msg->lParam);
-          if (other_surface != NULL &&
-              (GDK_IS_POPUP (other_surface) || GDK_IS_DRAG_SURFACE (other_surface)))
+          if (msg->lParam != 0)
             {
-              /* We're being deactivated in favour of some popup or temp window.
-               * Since only toplevels can have visual focus, pretend that
-               * nothing happened.
-               */
-              *ret_valp = 0;
-              return_val = TRUE;
-              break;
+               GdkSurface *other_surface = gdk_win32_handle_table_lookup ((HWND) msg->lParam);
+               if (other_surface != NULL &&
+                   (GDK_IS_POPUP (other_surface) || GDK_IS_DRAG_SURFACE (other_surface)))
+                {
+                  /* We're being deactivated in favour of some popup or temp window.
+                   * Since only toplevels can have visual focus, pretend that
+                   * nothing happened.
+                   */
+                  *ret_valp = 0;
+                  return_val = TRUE;
+                  break;
+                }
             }
-        }
 
-      if (LOWORD (msg->wParam) == WA_INACTIVE)
-       gdk_synthesize_surface_state (window, GDK_TOPLEVEL_STATE_FOCUSED, 0);
+          gdk_synthesize_surface_state (window, GDK_TOPLEVEL_STATE_FOCUSED, 0);
+        }
       else
-       gdk_synthesize_surface_state (window, 0, GDK_TOPLEVEL_STATE_FOCUSED);
+        {
+          gdk_synthesize_surface_state (window, 0, GDK_TOPLEVEL_STATE_FOCUSED);
+
+          /* Bring any tablet contexts to the top of the overlap order when
+           * one of our windows is activated.
+           * NOTE: It doesn't seem to work well if it is done in WM_ACTIVATEAPP
+           * instead
+           */
+          _gdk_input_set_tablet_active ();
+        }
 
-      /* Bring any tablet contexts to the top of the overlap order when
-       * one of our windows is activated.
-       * NOTE: It doesn't seem to work well if it is done in WM_ACTIVATEAPP
-       * instead
-       */
-      if (LOWORD(msg->wParam) != WA_INACTIVE)
-       _gdk_input_set_tablet_active ();
       break;
 
     case WM_ACTIVATEAPP: